Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Mikrokernel</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Mikrokernel"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Mikrokernel rootpage-Mikrokernel skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Mikrokernel</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Ein <b>Mikrokernel</b>, auch <b>µ-Kernel</b> (von griechisch „<a href="My" title="My">μ</a>“ für „<a href="My#Mikro-Zeichen_µ" title="My">Micro</a>“) oder <b>Mikrokern</b>, ist ein <a href="Kernel_(Betriebssystem)" title="Kernel (Betriebssystem)">Betriebssystemkern</a>, der im Gegensatz zu einem <a href="Monolithischer_Kernel" title="Monolithischer Kernel">monolithischen Kernel</a> nur grundlegende Funktionen erfüllt&nbsp;– in der Regel sind dies Speicher- und Prozessverwaltung, sowie Grundfunktionen zur Synchronisation und Kommunikation.
Alle weiteren Funktionen werden als eigene <a href="Prozess_(Informatik)" title="Prozess (Informatik)">Prozesse</a> (<i><a href="Server" title="Server">Server</a></i>), die mit den nachfragenden Programmen (<i><a href="Client" title="Client">Client</a></i>) kommunizieren, oder als <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a>, welche von den nachfragenden Programmen eingebunden wird, im <a href="Ring_(CPU)" class="mw-redirect" title="Ring (CPU)">Benutzer-Modus</a> implementiert.
</p>

<p>Mikrokerne sind besonders geeignet zur Implementierung <a href="Verteiltes_System" title="Verteiltes System">verteilter Betriebssysteme</a>, da die Betriebssystem-Komponenten ausgelagert werden können.
</p>

<div class="mw-heading mw-heading2"><h2 id="Entwicklung">Entwicklung</h2></div>
<p>Durch mangelhaftes Design einiger früherer Implementierungen haben Mikrokerne den Ruf, eher langsam und unübersichtlich zu sein. Jedoch gibt es inzwischen Kernel, die durch Abbau weiterer Funktionalität, aber auch durch starke Optimierung (z.&nbsp;T. mit Verlust der Portabilität) einen hohen Datendurchsatz erreichen und so an Interesse gewinnen. So arbeitet <a href="L4_(Mikrokernel)" title="L4 (Mikrokernel)">L4</a> mit lediglich zehn Befehlen.
</p><p>Auf der <a href="PowerPC" title="PowerPC">PowerPC</a>-Architektur, einer <a href="Reduced_Instruction_Set_Computer" title="Reduced Instruction Set Computer">RISC</a>-Architektur, waren extrem leistungsfähige Mikrokerne schon früher realisierbar, da hier die <a href="Kontextwechsel" title="Kontextwechsel">Kontextwechsel</a> wesentlich schneller durchgeführt werden konnten als auf <a href="Complex_Instruction_Set_Computer" title="Complex Instruction Set Computer">komplexeren Architekturen (CISC)</a>, beispielsweise <a href="X86-Architektur" title="X86-Architektur">x86</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Vorteile">Vorteile</h2></div>
<dl><dt>Separierte Komponenten</dt>
<dd></dd>
<dd>Einzelne Bestandteile des Betriebssystems können beliebig ausgetauscht werden, ohne dass dadurch andere Teile beeinträchtigt werden. Ein klares Schnittstellen-Design hilft dabei. Der Absturz einer einzelnen Komponente führt nicht zwangsläufig zum Zusammenbruch des gesamten Systems.</dd></dl>
<dl><dt>Treiber im <a href="Ring_(CPU)" class="mw-redirect" title="Ring (CPU)">Benutzer-Modus</a></dt>
<dd></dd>
<dd>Die Gerätetreiber laufen zusammen mit einem Anwendungsprogramm im Benutzer-Modus – im Gegensatz zu <a href="Monolithischer_Kernel" title="Monolithischer Kernel">monolithischen Kerneln</a>, bei denen alle Treiber im privilegierten Modus laufen. Dies hat den Vorteil, dass die Zugriffsrechte der Treiber einzeln bestimmt werden können.</dd>
<dd>Gerätetreiber brauchen nicht im Kernel zu sein und sind meist so konzipiert, dass sie auch mit Benutzerrechten (im Gegensatz zu root-Rechten oder gar im Kernel) ausgeführt werden können. Gleiches gilt für Dateisystem-Treiber etc., sodass z.&nbsp;B. <a href="File_Transfer_Protocol" title="File Transfer Protocol">FTP</a> und <a href="WebDAV" title="WebDAV">WebDAV</a> direkt auf Dateisystem-Ebene implementiert werden können, ohne das Sicherheitsrisiko zu erhöhen, d.&nbsp;h. ein Server lässt sich genauso benutzen wie ein lokales Verzeichnis, von allen Anwendungen aus.</dd>
<dd>Zur <a href="Ger%C3%A4tetreiber" title="Gerätetreiber">Treiber</a>-Verwendung genügt es, als normaler Benutzer mit Zugriffsrechten auf die benötigte Hardware angemeldet zu sein. Es ist keine Änderung von Systemdateien oder ein Neustart des Systems nötig. Auch können problemlos Hintergrunddienste („services“) gestartet werden, die z.&nbsp;B. unter <a href="Linux" title="Linux">Linux</a> eine Installation in den Kernel, mit root-Rechten und speziell für diesen Kernel kompiliert, erfordern würden.</dd></dl>
<dl><dt>Geringere Trusted Computing Base</dt>
<dd></dd>
<dd>Der Kernel-Code, dem ein Nutzer vertrauen muss, ist im Vergleich zu <a href="Monolithischer_Kernel" title="Monolithischer Kernel">monolithischen Betriebssystemen</a> relativ klein und somit einfacher zu verifizieren. Zum Beispiel, hat <a href="Minix_(Betriebssystem)" title="Minix (Betriebssystem)">Minix 3</a> nur 12.000 Zeilen.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Nachteile">Nachteile</h2></div>
<dl><dt>Geschwindigkeit</dt>
<dd></dd>
<dd>Da das auf dem Mikrokern laufende Betriebssystem aus vielen einzelnen Nutzer-Prozessen besteht, sind wesentlich mehr Kontextwechsel nötig als bei monolithischen Betriebssystemen. Dadurch ist ein Mikrokern in der Regel langsamer als ein monolithischer. Für <a href="L4_(Mikrokernel)" title="L4 (Mikrokernel)">L4</a> wurde allerdings nachgewiesen, dass <a href="L4Linux" title="L4Linux">L4Linux</a> nur geringfügig (5–10&nbsp;%) langsamer ist als <a href="Linux" title="Linux">Linux</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></dd></dl>
<dl><dt>Synchronisation</dt>
<dd></dd>
<dd>Für die Leistung eines Mikrokern-Systems ist die Synchronisation der vielen Nutzer-Prozesse von zentraler Bedeutung. Die koordinierenden Kernel-Prozesse sind komplex und verhältnismäßig schwierig zu optimieren.</dd></dl>
<dl><dt>Hardware-Zugriff</dt>
<dd></dd>
<dd>Einige Betriebssystemaufrufe, wie etwa physischer I/O-Zugriff, benötigen den privilegierten <a href="Ring_(CPU)" class="mw-redirect" title="Ring (CPU)">Kernel-Modus</a>. Normalen Prozessen sind direkte Zugriffe auf die Hardware aus Sicherheitsgründen untersagt. Um das zu umgehen, können ausgewählte Module wie der I/O-Treiber im Kernel-Modus betrieben werden. Alternativ kann der Mikrokern um elementare I/O-Funktionen erweitert werden, die den Kernel-Modus erfordern. Auf diese Funktionen darf nur der I/O-Treiber zugreifen, der im Benutzer-Modus Mechanismen wie Autorisation implementiert. Beide Lösungen weichen das Mikrokern-Konzept auf.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Bekannte_Mikrokernel">Bekannte Mikrokernel</h2></div>
<ul><li><a href="Mach_(Kernel)" title="Mach (Kernel)">Mach</a>
<ul><li><a href="GNU_Mach" class="mw-redirect" title="GNU Mach">GNU Mach</a></li></ul></li>
<li>Kernschnittstelle <a href="L4_(Mikrokernel)" title="L4 (Mikrokernel)">L4</a>, Implementierungen:
<ul><li>Fiasco</li>
<li>L4Ka::Pistachio</li>
<li>L4Ka::Hazelnut</li></ul></li>
<li><a href="MorphOS" title="MorphOS">Quark</a></li>
<li>KeyKOS, <a href="EROS_(Betriebssystem)" title="EROS (Betriebssystem)">EROS</a>, Coyotos</li>
<li><a href="Minix_(Betriebssystem)" title="Minix (Betriebssystem)">Minix</a></li>
<li><a href="ChorusOS" title="ChorusOS">Nucleus</a></li>
<li>SCIOPTA</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Betriebssysteme,_die_auf_Mikrokerneln_aufsetzen"><span id="Betriebssysteme.2C_die_auf_Mikrokerneln_aufsetzen"></span>Betriebssysteme, die auf Mikrokerneln aufsetzen</h2></div>
<ul><li><a href="AmigaOS" title="AmigaOS">AmigaOS</a></li>
<li><a href="Amoeba_(Betriebssystem)" title="Amoeba (Betriebssystem)">Amoeba</a></li>
<li><a href="ChorusOS" title="ChorusOS">ChorusOS</a></li>
<li><a href="GNU_Hurd" title="GNU Hurd">GNU/Hurd</a></li>
<li><a href="Google_Fuchsia" title="Google Fuchsia">Google Fuchsia</a></li>
<li><a href="HarmonyOS" title="HarmonyOS">HarmonyOS</a> (von Huawei; geplant ab Version 2.0, umgesetzt ab Version 5.0)</li>
<li><a href="L4Linux" title="L4Linux">L4Linux</a></li>
<li><a href="Minix_(Betriebssystem)" title="Minix (Betriebssystem)">Minix</a></li>
<li><a href="MkLinux" title="MkLinux">MkLinux</a></li>
<li><a href="MorphOS" title="MorphOS">MorphOS</a></li>
<li><a href="PC/GEOS" title="PC/GEOS">PC/GEOS</a></li>
<li><a href="PikeOS" title="PikeOS">PikeOS</a></li>
<li><a href="QNX" title="QNX">QNX</a> Neutrino</li>
<li><a href="Singularity_(Microsoft)" title="Singularity (Microsoft)">Singularity</a></li>
<li><a href="Symbian_OS" class="mw-redirect" title="Symbian OS">Symbian&nbsp;OS</a></li>
<li>Symobi (verwendet den Sphere Mikrokern)</li>
<li><a href="Tru64_UNIX" title="Tru64 UNIX">Tru64 UNIX</a></li>
<li>ENEA Ose</li>
<li>ThreadX</li>
<li><a href="VMware_vSphere" title="VMware vSphere">VMware ESXi</a></li></ul>
<p><a href="Microsoft_Windows_NT" title="Microsoft Windows NT">Windows NT</a> ist, auch wenn dies oftmals fälschlicherweise behauptet wird, kein Mikrokernelsystem. Es gehört zur Gruppe der <a href="Hybridkernel" title="Hybridkernel">Hybridkernel</a>. <a href="Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Andrew S. Tanenbaum</a> schreibt hierzu: „Windows NT 3.1 war ein halbherziger Versuch eines Mikrokernelsystems, aber es wurde nicht richtig gemacht, und die Leistung war nicht gut genug auf der Hardware der frühen 1990er Jahre, darum gab man die Idee für eine Weile auf.“<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Auch <a href="XNU" title="XNU">XNU</a>, der Kernel des Betriebssystems <a href="Darwin_(Betriebssystem)" title="Darwin (Betriebssystem)">Darwin</a> von Apple, ist ein Mach-Hybridkernel. Darwin dient als Kernbetriebssystem (<span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">Core Operating System</span>) von <a href="MacOS" title="MacOS">macOS</a> und davon abgeleiteten Systemen, wie u.&nbsp;a. <a href="IOS_(Betriebssystem)" title="IOS (Betriebssystem)">iOS</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://wiki.minix3.org/doku.php?id=www:documentation:read-more"><i>What is MINIX 3?</i></a> In: <i>minix3.org.</i><span class="Abrufdatum"> Abgerufen am 30.&nbsp;Juli 2024</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AMikrokernel&amp;rft.title=What+is+MINIX+3%3F&amp;rft.description=What+is+MINIX+3%3F&amp;rft.identifier=https%3A%2F%2Fwiki.minix3.org%2Fdoku.php%3Fid%3Dwww%3Adocumentation%3Aread-more&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Jean Wolter, Sebastian Schönberg: <cite style="font-style:italic">The performance of μ-kernel-based systems</cite>. In: <cite style="font-style:italic">Proceedings of the sixteenth ACM symposium on Operating systems principles</cite> (=&nbsp;<cite style="font-style:italic">SOSP '97</cite>). ACM, New York 1997, ISBN 0-89791-916-5, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&nbsp;</span>66–77</span>, <a href="Digital_Object_Identifier" title="Digital Object Identifier">doi</a>:<span class="uri-handle" style="white-space:nowrap"><a rel="nofollow" class="external text" href="https://doi.org/10.1145/268998.266660">10.1145/268998.266660</a></span> (<a rel="nofollow" class="external text" href="http://os.inf.tu-dresden.de/pubs/sosp97/">tu-dresden.de</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Mikrokernel&amp;rft.atitle=The+performance+of+%CE%BC-kernel-based+systems&amp;rft.au=Hermann+H%C3%A4rtig%2C+Michael+Hohmuth%2C+Jochen+Liedtke%2C+...&amp;rft.btitle=Proceedings+of+the+sixteenth+ACM+symposium+on+Operating+systems+principles&amp;rft.date=1997&amp;rft.doi=10.1145%2F268998.266660&amp;rft.genre=book&amp;rft.isbn=0897919165&amp;rft.pages=66-77&amp;rft.place=New+York&amp;rft.pub=ACM&amp;rft.series=SOSP+%2797" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">„Windows NT 3.1 was a half-hearted attempt at a microkernel system, but it wasn’t done right and the performance wasn't good enough on the hardware of the early 1990s, so it gave up on the idea for a while.“ <a rel="nofollow" class="external free" href="http://www.cs.vu.nl/~ast/reliable-os/">http://www.cs.vu.nl/~ast/reliable-os/</a></span>
</li>
</ol>
<style data-mw-deduplicate="TemplateStyles:r260755238">
/* start https://de.wikipedia.org/ */


.mw-parser-output div.klappleiste{border:1px solid var(--dewiki-rahmenfarbe1);clear:both;font-size:95%;box-sizing:border-box;margin-top:1.5em;padding:2px}.mw-parser-output div.klappleiste:after{clear:both;content:"";display:block}.mw-parser-output div.klappleiste-bild{float:left;padding:2px}.mw-parser-output div.klappleiste-kopf{background:var(--dewiki-hintergrundfarbe5);color:var(--color-base,#202122);text-align:center;font-weight:bold}.mw-parser-output div.klappleiste.mw-collapsed .klappleiste-bild{display:none}.mw-parser-output div.klappleiste+div.klappleiste,.mw-parser-output div.klappleiste+link+div.klappleiste,.mw-parser-output div.klappleiste+link+link+div.klappleiste,.mw-parser-output div.klappleiste+link+style+div.klappleiste,.mw-parser-output div.klappleiste+style+div.klappleiste,.mw-parser-output div.klappleiste+style+style+div.klappleiste,.mw-parser-output div.klappleiste+style+link+div.klappleiste{margin-top:-1px}@media screen{html.skin-theme-clientpref-night .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .klappleiste-bild span[typeof="mw:File"]:not(.skin-invert-image) img{background-color:#c8ccd1}}


/* end https://de.wikipedia.org/ */
</style>
<div class="klappleiste mw-collapsible navileiste navigation-not-searchable center" role="navigation">
<div class="klappleiste-kopf"><a href="Kernel_(Betriebssystem)" title="Kernel (Betriebssystem)">Kerneltypen (Betriebssystem)</a></div>
<div class="klappleiste-inhalt mw-collapsible-content">
<p><a href="Monolithischer_Kernel" title="Monolithischer Kernel">Monolithischer Kernel</a>&nbsp;|
<a href="Hybridkernel" title="Hybridkernel">Hybridkernel</a>&nbsp;|
<a class="mw-selflink selflink">Mikrokernel</a>&nbsp;|
<a href="Exokernel" title="Exokernel">Exokernel</a>
</p>
</div></div>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten&nbsp;(Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4684244-5">4684244-5</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-06-09" href="https://de.wikipedia.org/wiki/?title=Mikrokernel&amp;oldid=256838379">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>